package com.hoshiicloud.user.param.usercenter;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 用户账户修改参数实体
 *
 * @author : yangcheng
 * @date : 2019/5/10 14:25
 * @mail : maiboyc@163.com
 **/
@ApiModel
@Data
public class MemberAccountUpdateParam {

    // ID
    @NotNull(message = "ID不能为空")
    @ApiModelProperty(name = "id", value = "ID", required = true, dataType = "java.lang.Long", example = "3171776001692664100")
    private Long id;

    // 用户主键
    @NotNull(message = "用户主键ID不能为空")
    @ApiModelProperty(name = "userId", value = "用户主键ID", required = true, dataType = "java.lang.Long", example = "3171776001692664000")
    private Long userId;

    // 结算方式  1-日结 2-月季 3-45DAY 4-60DAY 5-90DAY 6-120DAY
    @NotNull(message = "结算方式不能为空")
    @ApiModelProperty(name = "settlement", value = "结算方式", required = true, dataType = "java.lang.Integer", example = "2")
    private Integer settlement;

    // 账户可用余额
    @NotNull(message = "账户可用余额不能为空")
    @ApiModelProperty(name = "availableBalance", value = "账户可用余额", required = true, dataType = "java.math.BigDecimal", example = "0.00")
    private BigDecimal availableBalance;

    // 账户总额
    @NotNull(message = "账户总额不能为空")
    @ApiModelProperty(name = "accTotal", value = "账户总额", required = true, dataType = "java.math.BigDecimal", example = "100.00")
    private BigDecimal accTotal;

    // 冻结金额
    @NotNull(message = "冻结金额不能为空")
    @ApiModelProperty(name = "freezingAmount", value = "冻结金额", required = true, dataType = "java.math.BigDecimal", example = "100.00")
    private BigDecimal freezingAmount;

    // 小金库余额
    @NotNull(message = "小金库余额不能为空")
    @ApiModelProperty(name = "cofferBalance", value = "小金库余额", required = true, dataType = "java.math.BigDecimal", example = "0.00")
    private BigDecimal cofferBalance;

    // 历史收益（累加）
    @NotNull(message = "历史收益不能为空")
    @ApiModelProperty(name = "historyProfit", value = "历史收益", required = true, dataType = "java.math.BigDecimal", example = "200.00")
    private BigDecimal historyProfit;

    // 收益可使用余额
    @NotNull(message = "收益可使用余额不能为空")
    @ApiModelProperty(name = "profitBalance", value = "收益可使用余额", required = true, dataType = "java.math.BigDecimal", example = "120.00")
    private BigDecimal profitBalance;

    // 推荐可用收益
    @NotNull(message = "推荐可用收益不能为空")
    @ApiModelProperty(name = "recomAvaProfit", value = "推荐可用收益", required = true, dataType = "java.math.BigDecimal", example = "0.00")
    private BigDecimal recomAvaProfit;

    // 上月积分
    @NotNull(message = "上月积分不能为空")
    @ApiModelProperty(name = "lastIntegral", value = "上月积分", required = true, dataType = "java.lang.Long", example = "10")
    private Long lastIntegral;

    // 当前积分
    @NotNull(message = "当前积分不能为空")
    @ApiModelProperty(name = "integral", value = "当前积分", required = true, dataType = "java.lang.Long", example = "20")
    private Long integral;

    // 消费订单总数
    @NotNull(message = "消费订单总数不能为空")
    @ApiModelProperty(name = "orderCount", value = "消费订单总数", required = true, dataType = "java.lang.Long", example = "2")
    private Long orderCount;

    // 消费订单总额（售后扣除）
    @NotNull(message = "消费订单总额不能为空")
    @ApiModelProperty(name = "orderAmt", value = "消费订单总额", required = true, dataType = "java.math.BigDecimal", example = "300.00")
    private BigDecimal orderAmt;

    // 售后金额
    @NotNull(message = "售后金额不能为空")
    @ApiModelProperty(name = "serviceAmt", value = "售后金额", required = true, dataType = "java.math.BigDecimal", example = "20.00")
    private BigDecimal serviceAmt;

    // 售后笔数
    @NotNull(message = "售后笔数不能为空")
    @ApiModelProperty(name = "serviceCount", value = "售后笔数", required = true, dataType = "java.lang.Long", example = "2")
    private Long serviceCount;

    // 积分消费次数
    @NotNull(message = "积分消费次数不能为空")
    @ApiModelProperty(name = "integralCount", value = "积分消费次数", required = true, dataType = "java.lang.Long", example = "1")
    private Long integralCount;

    // 积分消费金额
    @NotNull(message = "积分消费金额不能为空")
    @ApiModelProperty(name = "integralAmount", value = "积分消费金额", required = true, dataType = "java.math.BigDecimal", example = "88.00")
    private BigDecimal integralAmount;

    // 有效券张数
    @NotNull(message = "有效券张数不能为空")
    @ApiModelProperty(name = "ticketCount", value = "有效券张数", required = true, dataType = "java.lang.Long", example = "5")
    private Long ticketCount;

    // 有效券合计金额
    @NotNull(message = "有效券合计金额不能为空")
    @ApiModelProperty(name = "ticketAmt", value = "有效券合计金额", required = true, dataType = "java.math.BigDecimal", example = "398.00")
    private BigDecimal ticketAmt;

}  